//
//  AppDelegate.m
//  UI1_UIView
//
//  Created by JR_Rafael on 15/12/14.
//  Copyright © 2015年 lanou3g. All rights reserved.
//

#import "AppDelegate.h"

@interface AppDelegate ()

@end

@implementation AppDelegate


- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    // 应用程序启动完毕
    NSLog(@"应用程序启动完毕");
    
    /***************** UIWindow ********************/
    // 1. 创建UIWindow对象, 舞台 设置大小为屏幕大小
    self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
    // 2. 给Window一个背景颜色
    self.window.backgroundColor = [UIColor whiteColor];
    // 3. 放到屏幕上显示
    [self.window makeKeyAndVisible];
    // 4. 内存管理
    [_window release];
    
    // 1. root view controller 视图控制器
    UIViewController *vc = [[UIViewController alloc] init];
    // 2. 把 幕 放到舞台上
    self.window.rootViewController = vc;
    // 3.
    [vc release];
    
    
    /***************** UIView ***********************/
    // ****非常重要
    // 能看到的所有的控件都是UIView或者它的子类
    // 它表示一块矩形区域
    
    // 1. 创建UIView对象
    UIView *aView = [[UIView alloc] init];
    // 2. 确定位置和大小
    aView.frame = CGRectMake(100, 100, 100, 100);
    aView.backgroundColor = [UIColor cyanColor];
    // 3. 把UIView放到Window上显示
    // A addSubview:B  B添加到A身上
    [self.window addSubview:aView];
    // 4. 内存管理
    [aView release];
    
    // 练习创建UIView
    UIView *bView = [[UIView alloc] init];
    bView.frame = CGRectMake(100, 300, 100, 100);
    bView.backgroundColor = [UIColor redColor];
    // _window 是 bView的父视图, 而bView是_window的子视图
    [self.window addSubview:bView];
    [bView release];
    
    // UIView常用属性
    // 1. alpha 透明度 0~1 1不透明 0全透明
    bView.alpha = 0.5;
    // 2. hidden 是否隐藏 YES为隐藏
    bView.hidden = NO;
    // 3. superView 父视图
    UIView *spView = bView.superview;
    NSLog(@"%@", spView);
    // 4. subview 子视图
    NSArray *subArr = _window.subviews;
    NSLog(@"%@", subArr); 
    // 5. center 中心
//    bView.center = _window.center;
    // 6. tag 标记 通常情况下写一个比较大的数
    bView.tag = 1000;
    NSLog(@"%@", bView);
    // 通过tag值, 用父视图 获取到 子视图的对象
    UIView *view1 = [_window viewWithTag:1000];
    NSLog(@"%@", view1);
    
//    1. 创建UIView对象：
    UIView *cView = [[UIView alloc] init];
//    2. 设置frame x = 100，y = 200 ，w = 100 ，h = 100
    cView.frame = CGRectMake(100, 200, 100, 100);
//    3. 设置背景色为蓝色
    cView.backgroundColor = [UIColor blueColor];
//    4. 添加到window上
    [_window addSubview:cView];
//    5. 把view放到屏幕中心位置
    cView.center = _window.center;
//    6. 设置透明度50%
    cView.alpha = 0.5;
//    7. 打印它的父视图
    UIView *view2 = cView.superview;
    NSLog(@"%@", view2);
//    8. 打印它的子视图
    NSArray *cViewArr = cView.subviews;
    NSLog(@"%@", cViewArr);
//    9. 通过tag值把背景色改为红色
    cView.tag = 1001;
    UIView *view3 = [_window viewWithTag:1001];
    view3.backgroundColor = [UIColor redColor];
    [cView release];
    
    
    /**************** 添加视图 **************/
    UIView *dView = [[UIView alloc] init];
    dView.frame = CGRectMake(0, 0, 50, 50);
    // RGB
    // 每一个数值都是 0~1 浮点数
    // 0 ~ 255
    dView.backgroundColor = [UIColor colorWithRed:230/255.0 green:210/255.0 blue:13/255.0 alpha:0.5];
    // dView 添加到 aView上
    // frame 属性 参照的是父视图
    [aView addSubview:dView];
    [dView release];
    
    // 橘黄色的view
    UIView *eView = [[UIView alloc] init];
    eView.frame = CGRectMake(10, 10, 50, 50);
    eView.backgroundColor = [UIColor orangeColor];
    [aView addSubview:eView];
    [eView release];
    
    // 紫色View
    UIView *fView = [[UIView alloc] init];
    fView.frame = CGRectMake(20, 20, 50, 50);
    fView.backgroundColor = [UIColor purpleColor];
    [aView addSubview:fView];
    [fView release];
    
    // 如何修改这个层级关系?
    // 把子视图放到最下层
    [aView sendSubviewToBack:fView];
    // 把子视图带到最上层
    [aView bringSubviewToFront:dView];
    // 通过下标交换两个视图
    [aView exchangeSubviewAtIndex:0 withSubviewAtIndex:2];
    
    // 红色view
    UIView *gView = [[UIView alloc] init];
    gView.frame = CGRectMake(30, 30, 50, 50);
    gView.backgroundColor = [UIColor redColor];
    // 插入view 在某一子视图的上面
//    [aView insertSubview:gView aboveSubview:eView];
//    [aView insertSubview:gView atIndex:0];
    [aView insertSubview:gView belowSubview:fView];
    [gView release];
    
    
    return YES;
}

- (void)applicationWillResignActive:(UIApplication *)application {
    
    // 程序将要放弃活跃状态（HOME键）
    NSLog(@"程序将要放弃活跃状态");
    
}

- (void)applicationDidEnterBackground:(UIApplication *)application {
    
    // 应用程序已经进入后台
    NSLog(@"应用程序已经进入后台");
}

- (void)applicationWillEnterForeground:(UIApplication *)application {
    // 即将进入前台
    NSLog(@"即将进入前台");
}

- (void)applicationDidBecomeActive:(UIApplication *)application {
    // 程序已经成为活跃状态
    NSLog(@"程序已经成为活跃状态");
}

- (void)applicationWillTerminate:(UIApplication *)application {
    // 即将退出, 内存释放
    NSLog(@"即将退出, 内存释放");
}

@end
